package collection;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.LinkedList;
import java.util.List;
import java.util.Vector;
import java.util.logging.Logger;


/**
 * 
 *
 *@类名称：ListStudy.java
 *@类描述：
 *@创建人：zhongy
 *@创建时间：2017年9月26日-下午2:17:09
 *@修改备注:
 *@version
 */
@SuppressWarnings({"unchecked","rawtypes"})
public class ListStudy{
	static Logger log=Logger.getLogger(ListStudy.class.getSimpleName());
	/*
	 * 
	 *  Collection<--List<--Vector
	 *  Collection<--List<--ArrayList
	 *  Collection<--List<--LinkedList         
	 * 
	 * 
	 */
	
	public static void main(String[] args) {
		
//		studyArrayList();
//		studyLinkedList();
		studyVector();
		
		
		
		
	}
	

	public static void studyArrayList(){
		log.info("ArrayList  顺序、可重复、不安全、动态数组;");
		log.info("ArrayList  初始化大小:10;时机:add第一个元素的时候");
		log.info("ArrayList  扩容时机:add的时候,扩容大小:list.size()/2/即50%之前大小");
		log.info("ArrayList  特点： 查询速度快，增删慢,删除需要重新排序集合");
		List list=new ArrayList();
		Collections.synchronizedList(list);
//		for(int i=0;i<100;i++){
//			log.info("当前数量"+i);
//			list.add(1);
//		}
		
	}
	
	public static void studyLinkedList(){
		log.info("LinkedList 可重复、不安全、占空间<每个Node对象关联当前对象、前对象、后对象>、双向链表<fist Node正向关联所有元素;last Node反向关联所有元素>;");
		log.info("LinkedList 动态关联Node，不需要扩容");
		log.info("LinkedList 特点：  查询速度慢，增删快,不需要重新排序集合");
		LinkedList list=new LinkedList();
//		for(int i=0;i<100;i++){
//			log.info("当前数量"+i);
//			list.add(i);
//		}
		
	}
	
	public static void studyVector(){
		log.info("Vector  顺序、可重复、安全、动态数组;");
		log.info("Vector  初始化大小:10;时机:构造函数初始化的时候");
		log.info("Vector  扩容时机:add的时候,扩容大小:当前数组的大小，或者指定的大小构造方法指定");
		log.info("Vector  特点： 都慢，安全");
		Vector list=new Vector();
//		for(int i=0;i<100;i++){
//			log.info("当前数量"+i);
//			list.add(i);
//		}
		
	}

}
